package com.zjny.anno;

import com.zjny.helper.XssValidator;

import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * <p>
 * ：自定义xss校验注解，作用在字段上主要是
 * </p>
 *
 * @author cui haida
 * 2024/04/30/14:36
 */
// 运行时注解
@Retention(RetentionPolicy.RUNTIME)
@Target(value = {ElementType.METHOD, ElementType.FIELD, ElementType.CONSTRUCTOR, ElementType.PARAMETER})
// 自定义约束校验 -> XssValidator
@Constraint(validatedBy = {XssValidator.class})
public @interface Xss {
    /**
     * 默认提示
     *
     * @return 提示
     */
    String message() default "有脚本注入的风险，此处不允许任何脚本运行";

    /**
     * 默认分组
     *
     * @return 分组
     */
    Class<?>[] groups() default {};

    /**
     * 默认负载
     *
     * @return 负载
     */
    Class<? extends Payload>[] payload() default {};
}